if ((e) == NULL) {fprintf(stderr, "Out of memory in cast-hash-table!\n"); exit(2); }\
}
#define strfree(s) if (usemalloc) free(s);
/* called ONLY in the build procedure in which we can afford to be slow and do an strcpy since sizes of words are not determined: hardcoded in build_hash() */
#define stralloc(s, len) \
{\
if (usemalloc) (s) = (char *)malloc(len);\
else {\
if (free_str == NULL) free_str = (char *)malloc(AVG_WORD_LEN * DEF_MAX_WORDS);\